home *** CD-ROM | disk | FTP | other *** search
Text File | 2004-08-23 | 52.7 KB | 1,080 lines |
- ------------------------------------------------------------------------
- -- rounding.decTest -- decimal rounding modes testcases --
- -- Copyright (c) IBM Corporation, 1981, 2003. All rights reserved. --
- ------------------------------------------------------------------------
- -- Please see the document "General Decimal Arithmetic Testcases" --
- -- at http://www2.hursley.ibm.com/decimal for the description of --
- -- these testcases. --
- -- --
- -- These testcases are experimental ('beta' versions), and they --
- -- may contain errors. They are offered on an as-is basis. In --
- -- particular, achieving the same results as the tests here is not --
- -- a guarantee that an implementation complies with any Standard --
- -- or specification. The tests are not exhaustive. --
- -- --
- -- Please send comments, suggestions, and corrections to the author: --
- -- Mike Cowlishaw, IBM Fellow --
- -- IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK --
- -- mfc@uk.ibm.com --
- ------------------------------------------------------------------------
- version: 2.39
-
- -- These tests require that implementations take account of residues in
- -- order to get correct results for some rounding modes. Rather than
- -- single rounding tests we therefore need tests for most operators.
- -- [We do assume add/minus/plus/subtract are common paths, however, as
- -- is rounding of negatives (if the latter works for addition, assume it
- -- works for the others, too).]
- --
- -- Underflow Subnormal and overflow behaviours are tested under the individual
- -- operators.
-
- extended: 1
- precision: 5 -- for easier visual inspection
- maxExponent: 999
- minexponent: -999
-
- -- Addition operators -------------------------------------------------
- rounding: down
-
- radx100 add 12345 -0.1 -> 12344 Inexact Rounded
- radx101 add 12345 -0.01 -> 12344 Inexact Rounded
- radx102 add 12345 -0.001 -> 12344 Inexact Rounded
- radx103 add 12345 -0.00001 -> 12344 Inexact Rounded
- radx104 add 12345 -0.000001 -> 12344 Inexact Rounded
- radx105 add 12345 -0.0000001 -> 12344 Inexact Rounded
- radx106 add 12345 0 -> 12345
- radx107 add 12345 0.0000001 -> 12345 Inexact Rounded
- radx108 add 12345 0.000001 -> 12345 Inexact Rounded
- radx109 add 12345 0.00001 -> 12345 Inexact Rounded
- radx110 add 12345 0.0001 -> 12345 Inexact Rounded
- radx111 add 12345 0.001 -> 12345 Inexact Rounded
- radx112 add 12345 0.01 -> 12345 Inexact Rounded
- radx113 add 12345 0.1 -> 12345 Inexact Rounded
-
- radx115 add 12346 0.49999 -> 12346 Inexact Rounded
- radx116 add 12346 0.5 -> 12346 Inexact Rounded
- radx117 add 12346 0.50001 -> 12346 Inexact Rounded
-
- radx120 add 12345 0.4 -> 12345 Inexact Rounded
- radx121 add 12345 0.49 -> 12345 Inexact Rounded
- radx122 add 12345 0.499 -> 12345 Inexact Rounded
- radx123 add 12345 0.49999 -> 12345 Inexact Rounded
- radx124 add 12345 0.5 -> 12345 Inexact Rounded
- radx125 add 12345 0.50001 -> 12345 Inexact Rounded
- radx126 add 12345 0.5001 -> 12345 Inexact Rounded
- radx127 add 12345 0.501 -> 12345 Inexact Rounded
- radx128 add 12345 0.51 -> 12345 Inexact Rounded
- radx129 add 12345 0.6 -> 12345 Inexact Rounded
-
- rounding: half_down
-
- radx140 add 12345 -0.1 -> 12345 Inexact Rounded
- radx141 add 12345 -0.01 -> 12345 Inexact Rounded
- radx142 add 12345 -0.001 -> 12345 Inexact Rounded
- radx143 add 12345 -0.00001 -> 12345 Inexact Rounded
- radx144 add 12345 -0.000001 -> 12345 Inexact Rounded
- radx145 add 12345 -0.0000001 -> 12345 Inexact Rounded
- radx146 add 12345 0 -> 12345
- radx147 add 12345 0.0000001 -> 12345 Inexact Rounded
- radx148 add 12345 0.000001 -> 12345 Inexact Rounded
- radx149 add 12345 0.00001 -> 12345 Inexact Rounded
- radx150 add 12345 0.0001 -> 12345 Inexact Rounded
- radx151 add 12345 0.001 -> 12345 Inexact Rounded
- radx152 add 12345 0.01 -> 12345 Inexact Rounded
- radx153 add 12345 0.1 -> 12345 Inexact Rounded
-
- radx155 add 12346 0.49999 -> 12346 Inexact Rounded
- radx156 add 12346 0.5 -> 12346 Inexact Rounded
- radx157 add 12346 0.50001 -> 12347 Inexact Rounded
-
- radx160 add 12345 0.4 -> 12345 Inexact Rounded
- radx161 add 12345 0.49 -> 12345 Inexact Rounded
- radx162 add 12345 0.499 -> 12345 Inexact Rounded
- radx163 add 12345 0.49999 -> 12345 Inexact Rounded
- radx164 add 12345 0.5 -> 12345 Inexact Rounded
- radx165 add 12345 0.50001 -> 12346 Inexact Rounded
- radx166 add 12345 0.5001 -> 12346 Inexact Rounded
- radx167 add 12345 0.501 -> 12346 Inexact Rounded
- radx168 add 12345 0.51 -> 12346 Inexact Rounded
- radx169 add 12345 0.6 -> 12346 Inexact Rounded
-
- rounding: half_even
-
- radx170 add 12345 -0.1 -> 12345 Inexact Rounded
- radx171 add 12345 -0.01 -> 12345 Inexact Rounded
- radx172 add 12345 -0.001 -> 12345 Inexact Rounded
- radx173 add 12345 -0.00001 -> 12345 Inexact Rounded
- radx174 add 12345 -0.000001 -> 12345 Inexact Rounded
- radx175 add 12345 -0.0000001 -> 12345 Inexact Rounded
- radx176 add 12345 0 -> 12345
- radx177 add 12345 0.0000001 -> 12345 Inexact Rounded
- radx178 add 12345 0.000001 -> 12345 Inexact Rounded
- radx179 add 12345 0.00001 -> 12345 Inexact Rounded
- radx180 add 12345 0.0001 -> 12345 Inexact Rounded
- radx181 add 12345 0.001 -> 12345 Inexact Rounded
- radx182 add 12345 0.01 -> 12345 Inexact Rounded
- radx183 add 12345 0.1 -> 12345 Inexact Rounded
-
- radx185 add 12346 0.49999 -> 12346 Inexact Rounded
- radx186 add 12346 0.5 -> 12346 Inexact Rounded
- radx187 add 12346 0.50001 -> 12347 Inexact Rounded
-
- radx190 add 12345 0.4 -> 12345 Inexact Rounded
- radx191 add 12345 0.49 -> 12345 Inexact Rounded
- radx192 add 12345 0.499 -> 12345 Inexact Rounded
- radx193 add 12345 0.49999 -> 12345 Inexact Rounded
- radx194 add 12345 0.5 -> 12346 Inexact Rounded
- radx195 add 12345 0.50001 -> 12346 Inexact Rounded
- radx196 add 12345 0.5001 -> 12346 Inexact Rounded
- radx197 add 12345 0.501 -> 12346 Inexact Rounded
- radx198 add 12345 0.51 -> 12346 Inexact Rounded
- radx199 add 12345 0.6 -> 12346 Inexact Rounded
-
- rounding: half_up
-
- radx200 add 12345 -0.1 -> 12345 Inexact Rounded
- radx201 add 12345 -0.01 -> 12345 Inexact Rounded
- radx202 add 12345 -0.001 -> 12345 Inexact Rounded
- radx203 add 12345 -0.00001 -> 12345 Inexact Rounded
- radx204 add 12345 -0.000001 -> 12345 Inexact Rounded
- radx205 add 12345 -0.0000001 -> 12345 Inexact Rounded
- radx206 add 12345 0 -> 12345
- radx207 add 12345 0.0000001 -> 12345 Inexact Rounded
- radx208 add 12345 0.000001 -> 12345 Inexact Rounded
- radx209 add 12345 0.00001 -> 12345 Inexact Rounded
- radx210 add 12345 0.0001 -> 12345 Inexact Rounded
- radx211 add 12345 0.001 -> 12345 Inexact Rounded
- radx212 add 12345 0.01 -> 12345 Inexact Rounded
- radx213 add 12345 0.1 -> 12345 Inexact Rounded
-
- radx215 add 12346 0.49999 -> 12346 Inexact Rounded
- radx216 add 12346 0.5 -> 12347 Inexact Rounded
- radx217 add 12346 0.50001 -> 12347 Inexact Rounded
-
- radx220 add 12345 0.4 -> 12345 Inexact Rounded
- radx221 add 12345 0.49 -> 12345 Inexact Rounded
- radx222 add 12345 0.499 -> 12345 Inexact Rounded
- radx223 add 12345 0.49999 -> 12345 Inexact Rounded
- radx224 add 12345 0.5 -> 12346 Inexact Rounded
- radx225 add 12345 0.50001 -> 12346 Inexact Rounded
- radx226 add 12345 0.5001 -> 12346 Inexact Rounded
- radx227 add 12345 0.501 -> 12346 Inexact Rounded
- radx228 add 12345 0.51 -> 12346 Inexact Rounded
- radx229 add 12345 0.6 -> 12346 Inexact Rounded
-
- rounding: up
-
- radx230 add 12345 -0.1 -> 12345 Inexact Rounded
- radx231 add 12345 -0.01 -> 12345 Inexact Rounded
- radx232 add 12345 -0.001 -> 12345 Inexact Rounded
- radx233 add 12345 -0.00001 -> 12345 Inexact Rounded
- radx234 add 12345 -0.000001 -> 12345 Inexact Rounded
- radx235 add 12345 -0.0000001 -> 12345 Inexact Rounded
- radx236 add 12345 0 -> 12345
- radx237 add 12345 0.0000001 -> 12346 Inexact Rounded
- radx238 add 12345 0.000001 -> 12346 Inexact Rounded
- radx239 add 12345 0.00001 -> 12346 Inexact Rounded
- radx240 add 12345 0.0001 -> 12346 Inexact Rounded
- radx241 add 12345 0.001 -> 12346 Inexact Rounded
- radx242 add 12345 0.01 -> 12346 Inexact Rounded
- radx243 add 12345 0.1 -> 12346 Inexact Rounded
-
- radx245 add 12346 0.49999 -> 12347 Inexact Rounded
- radx246 add 12346 0.5 -> 12347 Inexact Rounded
- radx247 add 12346 0.50001 -> 12347 Inexact Rounded
-
- radx250 add 12345 0.4 -> 12346 Inexact Rounded
- radx251 add 12345 0.49 -> 12346 Inexact Rounded
- radx252 add 12345 0.499 -> 12346 Inexact Rounded
- radx253 add 12345 0.49999 -> 12346 Inexact Rounded
- radx254 add 12345 0.5 -> 12346 Inexact Rounded
- radx255 add 12345 0.50001 -> 12346 Inexact Rounded
- radx256 add 12345 0.5001 -> 12346 Inexact Rounded
- radx257 add 12345 0.501 -> 12346 Inexact Rounded
- radx258 add 12345 0.51 -> 12346 Inexact Rounded
- radx259 add 12345 0.6 -> 12346 Inexact Rounded
-
- rounding: floor
-
- radx300 add 12345 -0.1 -> 12344 Inexact Rounded
- radx301 add 12345 -0.01 -> 12344 Inexact Rounded
- radx302 add 12345 -0.001 -> 12344 Inexact Rounded
- radx303 add 12345 -0.00001 -> 12344 Inexact Rounded
- radx304 add 12345 -0.000001 -> 12344 Inexact Rounded
- radx305 add 12345 -0.0000001 -> 12344 Inexact Rounded
- radx306 add 12345 0 -> 12345
- radx307 add 12345 0.0000001 -> 12345 Inexact Rounded
- radx308 add 12345 0.000001 -> 12345 Inexact Rounded
- radx309 add 12345 0.00001 -> 12345 Inexact Rounded
- radx310 add 12345 0.0001 -> 12345 Inexact Rounded
- radx311 add 12345 0.001 -> 12345 Inexact Rounded
- radx312 add 12345 0.01 -> 12345 Inexact Rounded
- radx313 add 12345 0.1 -> 12345 Inexact Rounded
-
- radx315 add 12346 0.49999 -> 12346 Inexact Rounded
- radx316 add 12346 0.5 -> 12346 Inexact Rounded
- radx317 add 12346 0.50001 -> 12346 Inexact Rounded
-
- radx320 add 12345 0.4 -> 12345 Inexact Rounded
- radx321 add 12345 0.49 -> 12345 Inexact Rounded
- radx322 add 12345 0.499 -> 12345 Inexact Rounded
- radx323 add 12345 0.49999 -> 12345 Inexact Rounded
- radx324 add 12345 0.5 -> 12345 Inexact Rounded
- radx325 add 12345 0.50001 -> 12345 Inexact Rounded
- radx326 add 12345 0.5001 -> 12345 Inexact Rounded
- radx327 add 12345 0.501 -> 12345 Inexact Rounded
- radx328 add 12345 0.51 -> 12345 Inexact Rounded
- radx329 add 12345 0.6 -> 12345 Inexact Rounded
-
- rounding: ceiling
-
- radx330 add 12345 -0.1 -> 12345 Inexact Rounded
- radx331 add 12345 -0.01 -> 12345 Inexact Rounded
- radx332 add 12345 -0.001 -> 12345 Inexact Rounded
- radx333 add 12345 -0.00001 -> 12345 Inexact Rounded
- radx334 add 12345 -0.000001 -> 12345 Inexact Rounded
- radx335 add 12345 -0.0000001 -> 12345 Inexact Rounded
- radx336 add 12345 0 -> 12345
- radx337 add 12345 0.0000001 -> 12346 Inexact Rounded
- radx338 add 12345 0.000001 -> 12346 Inexact Rounded
- radx339 add 12345 0.00001 -> 12346 Inexact Rounded
- radx340 add 12345 0.0001 -> 12346 Inexact Rounded
- radx341 add 12345 0.001 -> 12346 Inexact Rounded
- radx342 add 12345 0.01 -> 12346 Inexact Rounded
- radx343 add 12345 0.1 -> 12346 Inexact Rounded
-
- radx345 add 12346 0.49999 -> 12347 Inexact Rounded
- radx346 add 12346 0.5 -> 12347 Inexact Rounded
- radx347 add 12346 0.50001 -> 12347 Inexact Rounded
-
- radx350 add 12345 0.4 -> 12346 Inexact Rounded
- radx351 add 12345 0.49 -> 12346 Inexact Rounded
- radx352 add 12345 0.499 -> 12346 Inexact Rounded
- radx353 add 12345 0.49999 -> 12346 Inexact Rounded
- radx354 add 12345 0.5 -> 12346 Inexact Rounded
- radx355 add 12345 0.50001 -> 12346 Inexact Rounded
- radx356 add 12345 0.5001 -> 12346 Inexact Rounded
- radx357 add 12345 0.501 -> 12346 Inexact Rounded
- radx358 add 12345 0.51 -> 12346 Inexact Rounded
- radx359 add 12345 0.6 -> 12346 Inexact Rounded
-
- -- negatives...
-
- rounding: down
-
- rsux100 add -12345 -0.1 -> -12345 Inexact Rounded
- rsux101 add -12345 -0.01 -> -12345 Inexact Rounded
- rsux102 add -12345 -0.001 -> -12345 Inexact Rounded
- rsux103 add -12345 -0.00001 -> -12345 Inexact Rounded
- rsux104 add -12345 -0.000001 -> -12345 Inexact Rounded
- rsux105 add -12345 -0.0000001 -> -12345 Inexact Rounded
- rsux106 add -12345 0 -> -12345
- rsux107 add -12345 0.0000001 -> -12344 Inexact Rounded
- rsux108 add -12345 0.000001 -> -12344 Inexact Rounded
- rsux109 add -12345 0.00001 -> -12344 Inexact Rounded
- rsux110 add -12345 0.0001 -> -12344 Inexact Rounded
- rsux111 add -12345 0.001 -> -12344 Inexact Rounded
- rsux112 add -12345 0.01 -> -12344 Inexact Rounded
- rsux113 add -12345 0.1 -> -12344 Inexact Rounded
-
- rsux115 add -12346 0.49999 -> -12345 Inexact Rounded
- rsux116 add -12346 0.5 -> -12345 Inexact Rounded
- rsux117 add -12346 0.50001 -> -12345 Inexact Rounded
-
- rsux120 add -12345 0.4 -> -12344 Inexact Rounded
- rsux121 add -12345 0.49 -> -12344 Inexact Rounded
- rsux122 add -12345 0.499 -> -12344 Inexact Rounded
- rsux123 add -12345 0.49999 -> -12344 Inexact Rounded
- rsux124 add -12345 0.5 -> -12344 Inexact Rounded
- rsux125 add -12345 0.50001 -> -12344 Inexact Rounded
- rsux126 add -12345 0.5001 -> -12344 Inexact Rounded
- rsux127 add -12345 0.501 -> -12344 Inexact Rounded
- rsux128 add -12345 0.51 -> -12344 Inexact Rounded
- rsux129 add -12345 0.6 -> -12344 Inexact Rounded
-
- rounding: half_down
-
- rsux140 add -12345 -0.1 -> -12345 Inexact Rounded
- rsux141 add -12345 -0.01 -> -12345 Inexact Rounded
- rsux142 add -12345 -0.001 -> -12345 Inexact Rounded
- rsux143 add -12345 -0.00001 -> -12345 Inexact Rounded
- rsux144 add -12345 -0.000001 -> -12345 Inexact Rounded
- rsux145 add -12345 -0.0000001 -> -12345 Inexact Rounded
- rsux146 add -12345 0 -> -12345
- rsux147 add -12345 0.0000001 -> -12345 Inexact Rounded
- rsux148 add -12345 0.000001 -> -12345 Inexact Rounded
- rsux149 add -12345 0.00001 -> -12345 Inexact Rounded
- rsux150 add -12345 0.0001 -> -12345 Inexact Rounded
- rsux151 add -12345 0.001 -> -12345 Inexact Rounded
- rsux152 add -12345 0.01 -> -12345 Inexact Rounded
- rsux153 add -12345 0.1 -> -12345 Inexact Rounded
-
- rsux155 add -12346 0.49999 -> -12346 Inexact Rounded
- rsux156 add -12346 0.5 -> -12345 Inexact Rounded
- rsux157 add -12346 0.50001 -> -12345 Inexact Rounded
-
- rsux160 add -12345 0.4 -> -12345 Inexact Rounded
- rsux161 add -12345 0.49 -> -12345 Inexact Rounded
- rsux162 add -12345 0.499 -> -12345 Inexact Rounded
- rsux163 add -12345 0.49999 -> -12345 Inexact Rounded
- rsux164 add -12345 0.5 -> -12344 Inexact Rounded
- rsux165 add -12345 0.50001 -> -12344 Inexact Rounded
- rsux166 add -12345 0.5001 -> -12344 Inexact Rounded
- rsux167 add -12345 0.501 -> -12344 Inexact Rounded
- rsux168 add -12345 0.51 -> -12344 Inexact Rounded
- rsux169 add -12345 0.6 -> -12344 Inexact Rounded
-
- rounding: half_even
-
- rsux170 add -12345 -0.1 -> -12345 Inexact Rounded
- rsux171 add -12345 -0.01 -> -12345 Inexact Rounded
- rsux172 add -12345 -0.001 -> -12345 Inexact Rounded
- rsux173 add -12345 -0.00001 -> -12345 Inexact Rounded
- rsux174 add -12345 -0.000001 -> -12345 Inexact Rounded
- rsux175 add -12345 -0.0000001 -> -12345 Inexact Rounded
- rsux176 add -12345 0 -> -12345
- rsux177 add -12345 0.0000001 -> -12345 Inexact Rounded
- rsux178 add -12345 0.000001 -> -12345 Inexact Rounded
- rsux179 add -12345 0.00001 -> -12345 Inexact Rounded
- rsux180 add -12345 0.0001 -> -12345 Inexact Rounded
- rsux181 add -12345 0.001 -> -12345 Inexact Rounded
- rsux182 add -12345 0.01 -> -12345 Inexact Rounded
- rsux183 add -12345 0.1 -> -12345 Inexact Rounded
-
- rsux185 add -12346 0.49999 -> -12346 Inexact Rounded
- rsux186 add -12346 0.5 -> -12346 Inexact Rounded
- rsux187 add -12346 0.50001 -> -12345 Inexact Rounded
-
- rsux190 add -12345 0.4 -> -12345 Inexact Rounded
- rsux191 add -12345 0.49 -> -12345 Inexact Rounded
- rsux192 add -12345 0.499 -> -12345 Inexact Rounded
- rsux193 add -12345 0.49999 -> -12345 Inexact Rounded
- rsux194 add -12345 0.5 -> -12344 Inexact Rounded
- rsux195 add -12345 0.50001 -> -12344 Inexact Rounded
- rsux196 add -12345 0.5001 -> -12344 Inexact Rounded
- rsux197 add -12345 0.501 -> -12344 Inexact Rounded
- rsux198 add -12345 0.51 -> -12344 Inexact Rounded
- rsux199 add -12345 0.6 -> -12344 Inexact Rounded
-
- rounding: half_up
-
- rsux200 add -12345 -0.1 -> -12345 Inexact Rounded
- rsux201 add -12345 -0.01 -> -12345 Inexact Rounded
- rsux202 add -12345 -0.001 -> -12345 Inexact Rounded
- rsux203 add -12345 -0.00001 -> -12345 Inexact Rounded
- rsux204 add -12345 -0.000001 -> -12345 Inexact Rounded
- rsux205 add -12345 -0.0000001 -> -12345 Inexact Rounded
- rsux206 add -12345 0 -> -12345
- rsux207 add -12345 0.0000001 -> -12345 Inexact Rounded
- rsux208 add -12345 0.000001 -> -12345 Inexact Rounded
- rsux209 add -12345 0.00001 -> -12345 Inexact Rounded
- rsux210 add -12345 0.0001 -> -12345 Inexact Rounded
- rsux211 add -12345 0.001 -> -12345 Inexact Rounded
- rsux212 add -12345 0.01 -> -12345 Inexact Rounded
- rsux213 add -12345 0.1 -> -12345 Inexact Rounded
-
- rsux215 add -12346 0.49999 -> -12346 Inexact Rounded
- rsux216 add -12346 0.5 -> -12346 Inexact Rounded
- rsux217 add -12346 0.50001 -> -12345 Inexact Rounded
-
- rsux220 add -12345 0.4 -> -12345 Inexact Rounded
- rsux221 add -12345 0.49 -> -12345 Inexact Rounded
- rsux222 add -12345 0.499 -> -12345 Inexact Rounded
- rsux223 add -12345 0.49999 -> -12345 Inexact Rounded
- rsux224 add -12345 0.5 -> -12345 Inexact Rounded
- rsux225 add -12345 0.50001 -> -12344 Inexact Rounded
- rsux226 add -12345 0.5001 -> -12344 Inexact Rounded
- rsux227 add -12345 0.501 -> -12344 Inexact Rounded
- rsux228 add -12345 0.51 -> -12344 Inexact Rounded
- rsux229 add -12345 0.6 -> -12344 Inexact Rounded
-
- rounding: up
-
- rsux230 add -12345 -0.1 -> -12346 Inexact Rounded
- rsux231 add -12345 -0.01 -> -12346 Inexact Rounded
- rsux232 add -12345 -0.001 -> -12346 Inexact Rounded
- rsux233 add -12345 -0.00001 -> -12346 Inexact Rounded
- rsux234 add -12345 -0.000001 -> -12346 Inexact Rounded
- rsux235 add -12345 -0.0000001 -> -12346 Inexact Rounded
- rsux236 add -12345 0 -> -12345
- rsux237 add -12345 0.0000001 -> -12345 Inexact Rounded
- rsux238 add -12345 0.000001 -> -12345 Inexact Rounded
- rsux239 add -12345 0.00001 -> -12345 Inexact Rounded
- rsux240 add -12345 0.0001 -> -12345 Inexact Rounded
- rsux241 add -12345 0.001 -> -12345 Inexact Rounded
- rsux242 add -12345 0.01 -> -12345 Inexact Rounded
- rsux243 add -12345 0.1 -> -12345 Inexact Rounded
-
- rsux245 add -12346 0.49999 -> -12346 Inexact Rounded
- rsux246 add -12346 0.5 -> -12346 Inexact Rounded
- rsux247 add -12346 0.50001 -> -12346 Inexact Rounded
-
- rsux250 add -12345 0.4 -> -12345 Inexact Rounded
- rsux251 add -12345 0.49 -> -12345 Inexact Rounded
- rsux252 add -12345 0.499 -> -12345 Inexact Rounded
- rsux253 add -12345 0.49999 -> -12345 Inexact Rounded
- rsux254 add -12345 0.5 -> -12345 Inexact Rounded
- rsux255 add -12345 0.50001 -> -12345 Inexact Rounded
- rsux256 add -12345 0.5001 -> -12345 Inexact Rounded
- rsux257 add -12345 0.501 -> -12345 Inexact Rounded
- rsux258 add -12345 0.51 -> -12345 Inexact Rounded
- rsux259 add -12345 0.6 -> -12345 Inexact Rounded
-
- rounding: floor
-
- rsux300 add -12345 -0.1 -> -12346 Inexact Rounded
- rsux301 add -12345 -0.01 -> -12346 Inexact Rounded
- rsux302 add -12345 -0.001 -> -12346 Inexact Rounded
- rsux303 add -12345 -0.00001 -> -12346 Inexact Rounded
- rsux304 add -12345 -0.000001 -> -12346 Inexact Rounded
- rsux305 add -12345 -0.0000001 -> -12346 Inexact Rounded
- rsux306 add -12345 0 -> -12345
- rsux307 add -12345 0.0000001 -> -12345 Inexact Rounded
- rsux308 add -12345 0.000001 -> -12345 Inexact Rounded
- rsux309 add -12345 0.00001 -> -12345 Inexact Rounded
- rsux310 add -12345 0.0001 -> -12345 Inexact Rounded
- rsux311 add -12345 0.001 -> -12345 Inexact Rounded
- rsux312 add -12345 0.01 -> -12345 Inexact Rounded
- rsux313 add -12345 0.1 -> -12345 Inexact Rounded
-
- rsux315 add -12346 0.49999 -> -12346 Inexact Rounded
- rsux316 add -12346 0.5 -> -12346 Inexact Rounded
- rsux317 add -12346 0.50001 -> -12346 Inexact Rounded
-
- rsux320 add -12345 0.4 -> -12345 Inexact Rounded
- rsux321 add -12345 0.49 -> -12345 Inexact Rounded
- rsux322 add -12345 0.499 -> -12345 Inexact Rounded
- rsux323 add -12345 0.49999 -> -12345 Inexact Rounded
- rsux324 add -12345 0.5 -> -12345 Inexact Rounded
- rsux325 add -12345 0.50001 -> -12345 Inexact Rounded
- rsux326 add -12345 0.5001 -> -12345 Inexact Rounded
- rsux327 add -12345 0.501 -> -12345 Inexact Rounded
- rsux328 add -12345 0.51 -> -12345 Inexact Rounded
- rsux329 add -12345 0.6 -> -12345 Inexact Rounded
-
- rounding: ceiling
-
- rsux330 add -12345 -0.1 -> -12345 Inexact Rounded
- rsux331 add -12345 -0.01 -> -12345 Inexact Rounded
- rsux332 add -12345 -0.001 -> -12345 Inexact Rounded
- rsux333 add -12345 -0.00001 -> -12345 Inexact Rounded
- rsux334 add -12345 -0.000001 -> -12345 Inexact Rounded
- rsux335 add -12345 -0.0000001 -> -12345 Inexact Rounded
- rsux336 add -12345 0 -> -12345
- rsux337 add -12345 0.0000001 -> -12344 Inexact Rounded
- rsux338 add -12345 0.000001 -> -12344 Inexact Rounded
- rsux339 add -12345 0.00001 -> -12344 Inexact Rounded
- rsux340 add -12345 0.0001 -> -12344 Inexact Rounded
- rsux341 add -12345 0.001 -> -12344 Inexact Rounded
- rsux342 add -12345 0.01 -> -12344 Inexact Rounded
- rsux343 add -12345 0.1 -> -12344 Inexact Rounded
-
- rsux345 add -12346 0.49999 -> -12345 Inexact Rounded
- rsux346 add -12346 0.5 -> -12345 Inexact Rounded
- rsux347 add -12346 0.50001 -> -12345 Inexact Rounded
-
- rsux350 add -12345 0.4 -> -12344 Inexact Rounded
- rsux351 add -12345 0.49 -> -12344 Inexact Rounded
- rsux352 add -12345 0.499 -> -12344 Inexact Rounded
- rsux353 add -12345 0.49999 -> -12344 Inexact Rounded
- rsux354 add -12345 0.5 -> -12344 Inexact Rounded
- rsux355 add -12345 0.50001 -> -12344 Inexact Rounded
- rsux356 add -12345 0.5001 -> -12344 Inexact Rounded
- rsux357 add -12345 0.501 -> -12344 Inexact Rounded
- rsux358 add -12345 0.51 -> -12344 Inexact Rounded
- rsux359 add -12345 0.6 -> -12344 Inexact Rounded
-
- -- Check cancellation subtractions
- -- (The IEEE 854 'curious rule' in $6.3)
-
- rounding: down
- rzex001 add 0 0 -> 0
- rzex002 add 0 -0 -> 0
- rzex003 add -0 0 -> 0
- rzex004 add -0 -0 -> -0
- rzex005 add 1 -1 -> 0
- rzex006 add -1 1 -> 0
- rzex007 add 1.5 -1.5 -> 0.0
- rzex008 add -1.5 1.5 -> 0.0
- rzex009 add 2 -2 -> 0
- rzex010 add -2 2 -> 0
-
- rounding: up
- rzex011 add 0 0 -> 0
- rzex012 add 0 -0 -> 0
- rzex013 add -0 0 -> 0
- rzex014 add -0 -0 -> -0
- rzex015 add 1 -1 -> 0
- rzex016 add -1 1 -> 0
- rzex017 add 1.5 -1.5 -> 0.0
- rzex018 add -1.5 1.5 -> 0.0
- rzex019 add 2 -2 -> 0
- rzex020 add -2 2 -> 0
-
- rounding: half_up
- rzex021 add 0 0 -> 0
- rzex022 add 0 -0 -> 0
- rzex023 add -0 0 -> 0
- rzex024 add -0 -0 -> -0
- rzex025 add 1 -1 -> 0
- rzex026 add -1 1 -> 0
- rzex027 add 1.5 -1.5 -> 0.0
- rzex028 add -1.5 1.5 -> 0.0
- rzex029 add 2 -2 -> 0
- rzex030 add -2 2 -> 0
-
- rounding: half_down
- rzex031 add 0 0 -> 0
- rzex032 add 0 -0 -> 0
- rzex033 add -0 0 -> 0
- rzex034 add -0 -0 -> -0
- rzex035 add 1 -1 -> 0
- rzex036 add -1 1 -> 0
- rzex037 add 1.5 -1.5 -> 0.0
- rzex038 add -1.5 1.5 -> 0.0
- rzex039 add 2 -2 -> 0
- rzex040 add -2 2 -> 0
-
- rounding: half_even
- rzex041 add 0 0 -> 0
- rzex042 add 0 -0 -> 0
- rzex043 add -0 0 -> 0
- rzex044 add -0 -0 -> -0
- rzex045 add 1 -1 -> 0
- rzex046 add -1 1 -> 0
- rzex047 add 1.5 -1.5 -> 0.0
- rzex048 add -1.5 1.5 -> 0.0
- rzex049 add 2 -2 -> 0
- rzex050 add -2 2 -> 0
-
- rounding: floor
- rzex051 add 0 0 -> 0
- rzex052 add 0 -0 -> -0 -- here are two 'curious'
- rzex053 add -0 0 -> -0 --
- rzex054 add -0 -0 -> -0
- rzex055 add 1 -1 -> -0 -- here are the rest
- rzex056 add -1 1 -> -0 -- ..
- rzex057 add 1.5 -1.5 -> -0.0 -- ..
- rzex058 add -1.5 1.5 -> -0.0 -- ..
- rzex059 add 2 -2 -> -0 -- ..
- rzex060 add -2 2 -> -0 -- ..
-
- rounding: ceiling
- rzex061 add 0 0 -> 0
- rzex062 add 0 -0 -> 0
- rzex063 add -0 0 -> 0
- rzex064 add -0 -0 -> -0
- rzex065 add 1 -1 -> 0
- rzex066 add -1 1 -> 0
- rzex067 add 1.5 -1.5 -> 0.0
- rzex068 add -1.5 1.5 -> 0.0
- rzex069 add 2 -2 -> 0
- rzex070 add -2 2 -> 0
-
-
- -- Division operators -------------------------------------------------
-
- rounding: down
- rdvx101 divide 12345 1 -> 12345
- rdvx102 divide 12345 1.0001 -> 12343 Inexact Rounded
- rdvx103 divide 12345 1.001 -> 12332 Inexact Rounded
- rdvx104 divide 12345 1.01 -> 12222 Inexact Rounded
- rdvx105 divide 12345 1.1 -> 11222 Inexact Rounded
- rdvx106 divide 12355 4 -> 3088.7 Inexact Rounded
- rdvx107 divide 12345 4 -> 3086.2 Inexact Rounded
- rdvx108 divide 12355 4.0001 -> 3088.6 Inexact Rounded
- rdvx109 divide 12345 4.0001 -> 3086.1 Inexact Rounded
- rdvx110 divide 12345 4.9 -> 2519.3 Inexact Rounded
- rdvx111 divide 12345 4.99 -> 2473.9 Inexact Rounded
- rdvx112 divide 12345 4.999 -> 2469.4 Inexact Rounded
- rdvx113 divide 12345 4.9999 -> 2469.0 Inexact Rounded
- rdvx114 divide 12345 5 -> 2469
- rdvx115 divide 12345 5.0001 -> 2468.9 Inexact Rounded
- rdvx116 divide 12345 5.001 -> 2468.5 Inexact Rounded
- rdvx117 divide 12345 5.01 -> 2464.0 Inexact Rounded
- rdvx118 divide 12345 5.1 -> 2420.5 Inexact Rounded
-
- rounding: half_down
- rdvx201 divide 12345 1 -> 12345
- rdvx202 divide 12345 1.0001 -> 12344 Inexact Rounded
- rdvx203 divide 12345 1.001 -> 12333 Inexact Rounded
- rdvx204 divide 12345 1.01 -> 12223 Inexact Rounded
- rdvx205 divide 12345 1.1 -> 11223 Inexact Rounded
- rdvx206 divide 12355 4 -> 3088.7 Inexact Rounded
- rdvx207 divide 12345 4 -> 3086.2 Inexact Rounded
- rdvx208 divide 12355 4.0001 -> 3088.7 Inexact Rounded
- rdvx209 divide 12345 4.0001 -> 3086.2 Inexact Rounded
- rdvx210 divide 12345 4.9 -> 2519.4 Inexact Rounded
- rdvx211 divide 12345 4.99 -> 2473.9 Inexact Rounded
- rdvx212 divide 12345 4.999 -> 2469.5 Inexact Rounded
- rdvx213 divide 12345 4.9999 -> 2469.0 Inexact Rounded
- rdvx214 divide 12345 5 -> 2469
- rdvx215 divide 12345 5.0001 -> 2469.0 Inexact Rounded
- rdvx216 divide 12345 5.001 -> 2468.5 Inexact Rounded
- rdvx217 divide 12345 5.01 -> 2464.1 Inexact Rounded
- rdvx218 divide 12345 5.1 -> 2420.6 Inexact Rounded
-
- rounding: half_even
- rdvx301 divide 12345 1 -> 12345
- rdvx302 divide 12345 1.0001 -> 12344 Inexact Rounded
- rdvx303 divide 12345 1.001 -> 12333 Inexact Rounded
- rdvx304 divide 12345 1.01 -> 12223 Inexact Rounded
- rdvx305 divide 12345 1.1 -> 11223 Inexact Rounded
- rdvx306 divide 12355 4 -> 3088.8 Inexact Rounded
- rdvx307 divide 12345 4 -> 3086.2 Inexact Rounded
- rdvx308 divide 12355 4.0001 -> 3088.7 Inexact Rounded
- rdvx309 divide 12345 4.0001 -> 3086.2 Inexact Rounded
- rdvx310 divide 12345 4.9 -> 2519.4 Inexact Rounded
- rdvx311 divide 12345 4.99 -> 2473.9 Inexact Rounded
- rdvx312 divide 12345 4.999 -> 2469.5 Inexact Rounded
- rdvx313 divide 12345 4.9999 -> 2469.0 Inexact Rounded
- rdvx314 divide 12345 5 -> 2469
- rdvx315 divide 12345 5.0001 -> 2469.0 Inexact Rounded
- rdvx316 divide 12345 5.001 -> 2468.5 Inexact Rounded
- rdvx317 divide 12345 5.01 -> 2464.1 Inexact Rounded
- rdvx318 divide 12345 5.1 -> 2420.6 Inexact Rounded
-
- rounding: half_up
- rdvx401 divide 12345 1 -> 12345
- rdvx402 divide 12345 1.0001 -> 12344 Inexact Rounded
- rdvx403 divide 12345 1.001 -> 12333 Inexact Rounded
- rdvx404 divide 12345 1.01 -> 12223 Inexact Rounded
- rdvx405 divide 12345 1.1 -> 11223 Inexact Rounded
- rdvx406 divide 12355 4 -> 3088.8 Inexact Rounded
- rdvx407 divide 12345 4 -> 3086.3 Inexact Rounded
- rdvx408 divide 12355 4.0001 -> 3088.7 Inexact Rounded
- rdvx409 divide 12345 4.0001 -> 3086.2 Inexact Rounded
- rdvx410 divide 12345 4.9 -> 2519.4 Inexact Rounded
- rdvx411 divide 12345 4.99 -> 2473.9 Inexact Rounded
- rdvx412 divide 12345 4.999 -> 2469.5 Inexact Rounded
- rdvx413 divide 12345 4.9999 -> 2469.0 Inexact Rounded
- rdvx414 divide 12345 5 -> 2469
- rdvx415 divide 12345 5.0001 -> 2469.0 Inexact Rounded
- rdvx416 divide 12345 5.001 -> 2468.5 Inexact Rounded
- rdvx417 divide 12345 5.01 -> 2464.1 Inexact Rounded
- rdvx418 divide 12345 5.1 -> 2420.6 Inexact Rounded
-
- rounding: up
- rdvx501 divide 12345 1 -> 12345
- rdvx502 divide 12345 1.0001 -> 12344 Inexact Rounded
- rdvx503 divide 12345 1.001 -> 12333 Inexact Rounded
- rdvx504 divide 12345 1.01 -> 12223 Inexact Rounded
- rdvx505 divide 12345 1.1 -> 11223 Inexact Rounded
- rdvx506 divide 12355 4 -> 3088.8 Inexact Rounded
- rdvx507 divide 12345 4 -> 3086.3 Inexact Rounded
- rdvx508 divide 12355 4.0001 -> 3088.7 Inexact Rounded
- rdvx509 divide 12345 4.0001 -> 3086.2 Inexact Rounded
- rdvx510 divide 12345 4.9 -> 2519.4 Inexact Rounded
- rdvx511 divide 12345 4.99 -> 2474.0 Inexact Rounded
- rdvx512 divide 12345 4.999 -> 2469.5 Inexact Rounded
- rdvx513 divide 12345 4.9999 -> 2469.1 Inexact Rounded
- rdvx514 divide 12345 5 -> 2469
- rdvx515 divide 12345 5.0001 -> 2469.0 Inexact Rounded
- rdvx516 divide 12345 5.001 -> 2468.6 Inexact Rounded
- rdvx517 divide 12345 5.01 -> 2464.1 Inexact Rounded
- rdvx518 divide 12345 5.1 -> 2420.6 Inexact Rounded
-
- rounding: floor
- rdvx601 divide 12345 1 -> 12345
- rdvx602 divide 12345 1.0001 -> 12343 Inexact Rounded
- rdvx603 divide 12345 1.001 -> 12332 Inexact Rounded
- rdvx604 divide 12345 1.01 -> 12222 Inexact Rounded
- rdvx605 divide 12345 1.1 -> 11222 Inexact Rounded
- rdvx606 divide 12355 4 -> 3088.7 Inexact Rounded
- rdvx607 divide 12345 4 -> 3086.2 Inexact Rounded
- rdvx608 divide 12355 4.0001 -> 3088.6 Inexact Rounded
- rdvx609 divide 12345 4.0001 -> 3086.1 Inexact Rounded
- rdvx610 divide 12345 4.9 -> 2519.3 Inexact Rounded
- rdvx611 divide 12345 4.99 -> 2473.9 Inexact Rounded
- rdvx612 divide 12345 4.999 -> 2469.4 Inexact Rounded
- rdvx613 divide 12345 4.9999 -> 2469.0 Inexact Rounded
- rdvx614 divide 12345 5 -> 2469
- rdvx615 divide 12345 5.0001 -> 2468.9 Inexact Rounded
- rdvx616 divide 12345 5.001 -> 2468.5 Inexact Rounded
- rdvx617 divide 12345 5.01 -> 2464.0 Inexact Rounded
- rdvx618 divide 12345 5.1 -> 2420.5 Inexact Rounded
-
- rounding: ceiling
- rdvx701 divide 12345 1 -> 12345
- rdvx702 divide 12345 1.0001 -> 12344 Inexact Rounded
- rdvx703 divide 12345 1.001 -> 12333 Inexact Rounded
- rdvx704 divide 12345 1.01 -> 12223 Inexact Rounded
- rdvx705 divide 12345 1.1 -> 11223 Inexact Rounded
- rdvx706 divide 12355 4 -> 3088.8 Inexact Rounded
- rdvx707 divide 12345 4 -> 3086.3 Inexact Rounded
- rdvx708 divide 12355 4.0001 -> 3088.7 Inexact Rounded
- rdvx709 divide 12345 4.0001 -> 3086.2 Inexact Rounded
- rdvx710 divide 12345 4.9 -> 2519.4 Inexact Rounded
- rdvx711 divide 12345 4.99 -> 2474.0 Inexact Rounded
- rdvx712 divide 12345 4.999 -> 2469.5 Inexact Rounded
- rdvx713 divide 12345 4.9999 -> 2469.1 Inexact Rounded
- rdvx714 divide 12345 5 -> 2469
- rdvx715 divide 12345 5.0001 -> 2469.0 Inexact Rounded
- rdvx716 divide 12345 5.001 -> 2468.6 Inexact Rounded
- rdvx717 divide 12345 5.01 -> 2464.1 Inexact Rounded
- rdvx718 divide 12345 5.1 -> 2420.6 Inexact Rounded
-
- -- [divideInteger and remainder unaffected]
-
- -- Multiplication operator --------------------------------------------
-
- rounding: down
- rmux101 multiply 12345 1 -> 12345
- rmux102 multiply 12345 1.0001 -> 12346 Inexact Rounded
- rmux103 multiply 12345 1.001 -> 12357 Inexact Rounded
- rmux104 multiply 12345 1.01 -> 12468 Inexact Rounded
- rmux105 multiply 12345 1.1 -> 13579 Inexact Rounded
- rmux106 multiply 12345 4 -> 49380
- rmux107 multiply 12345 4.0001 -> 49381 Inexact Rounded
- rmux108 multiply 12345 4.9 -> 60490 Inexact Rounded
- rmux109 multiply 12345 4.99 -> 61601 Inexact Rounded
- rmux110 multiply 12345 4.999 -> 61712 Inexact Rounded
- rmux111 multiply 12345 4.9999 -> 61723 Inexact Rounded
- rmux112 multiply 12345 5 -> 61725
- rmux113 multiply 12345 5.0001 -> 61726 Inexact Rounded
- rmux114 multiply 12345 5.001 -> 61737 Inexact Rounded
- rmux115 multiply 12345 5.01 -> 61848 Inexact Rounded
- rmux116 multiply 12345 12 -> 1.4814E+5 Rounded
- rmux117 multiply 12345 13 -> 1.6048E+5 Inexact Rounded
- rmux118 multiply 12355 12 -> 1.4826E+5 Rounded
- rmux119 multiply 12355 13 -> 1.6061E+5 Inexact Rounded
-
- rounding: half_down
- rmux201 multiply 12345 1 -> 12345
- rmux202 multiply 12345 1.0001 -> 12346 Inexact Rounded
- rmux203 multiply 12345 1.001 -> 12357 Inexact Rounded
- rmux204 multiply 12345 1.01 -> 12468 Inexact Rounded
- rmux205 multiply 12345 1.1 -> 13579 Inexact Rounded
- rmux206 multiply 12345 4 -> 49380
- rmux207 multiply 12345 4.0001 -> 49381 Inexact Rounded
- rmux208 multiply 12345 4.9 -> 60490 Inexact Rounded
- rmux209 multiply 12345 4.99 -> 61602 Inexact Rounded
- rmux210 multiply 12345 4.999 -> 61713 Inexact Rounded
- rmux211 multiply 12345 4.9999 -> 61724 Inexact Rounded
- rmux212 multiply 12345 5 -> 61725
- rmux213 multiply 12345 5.0001 -> 61726 Inexact Rounded
- rmux214 multiply 12345 5.001 -> 61737 Inexact Rounded
- rmux215 multiply 12345 5.01 -> 61848 Inexact Rounded
- rmux216 multiply 12345 12 -> 1.4814E+5 Rounded
- rmux217 multiply 12345 13 -> 1.6048E+5 Inexact Rounded
- rmux218 multiply 12355 12 -> 1.4826E+5 Rounded
- rmux219 multiply 12355 13 -> 1.6061E+5 Inexact Rounded
-
- rounding: half_even
- rmux301 multiply 12345 1 -> 12345
- rmux302 multiply 12345 1.0001 -> 12346 Inexact Rounded
- rmux303 multiply 12345 1.001 -> 12357 Inexact Rounded
- rmux304 multiply 12345 1.01 -> 12468 Inexact Rounded
- rmux305 multiply 12345 1.1 -> 13580 Inexact Rounded
- rmux306 multiply 12345 4 -> 49380
- rmux307 multiply 12345 4.0001 -> 49381 Inexact Rounded
- rmux308 multiply 12345 4.9 -> 60490 Inexact Rounded
- rmux309 multiply 12345 4.99 -> 61602 Inexact Rounded
- rmux310 multiply 12345 4.999 -> 61713 Inexact Rounded
- rmux311 multiply 12345 4.9999 -> 61724 Inexact Rounded
- rmux312 multiply 12345 5 -> 61725
- rmux313 multiply 12345 5.0001 -> 61726 Inexact Rounded
- rmux314 multiply 12345 5.001 -> 61737 Inexact Rounded
- rmux315 multiply 12345 5.01 -> 61848 Inexact Rounded
- rmux316 multiply 12345 12 -> 1.4814E+5 Rounded
- rmux317 multiply 12345 13 -> 1.6048E+5 Inexact Rounded
- rmux318 multiply 12355 12 -> 1.4826E+5 Rounded
- rmux319 multiply 12355 13 -> 1.6062E+5 Inexact Rounded
-
- rounding: half_up
- rmux401 multiply 12345 1 -> 12345
- rmux402 multiply 12345 1.0001 -> 12346 Inexact Rounded
- rmux403 multiply 12345 1.001 -> 12357 Inexact Rounded
- rmux404 multiply 12345 1.01 -> 12468 Inexact Rounded
- rmux405 multiply 12345 1.1 -> 13580 Inexact Rounded
- rmux406 multiply 12345 4 -> 49380
- rmux407 multiply 12345 4.0001 -> 49381 Inexact Rounded
- rmux408 multiply 12345 4.9 -> 60491 Inexact Rounded
- rmux409 multiply 12345 4.99 -> 61602 Inexact Rounded
- rmux410 multiply 12345 4.999 -> 61713 Inexact Rounded
- rmux411 multiply 12345 4.9999 -> 61724 Inexact Rounded
- rmux412 multiply 12345 5 -> 61725
- rmux413 multiply 12345 5.0001 -> 61726 Inexact Rounded
- rmux414 multiply 12345 5.001 -> 61737 Inexact Rounded
- rmux415 multiply 12345 5.01 -> 61848 Inexact Rounded
- rmux416 multiply 12345 12 -> 1.4814E+5 Rounded
- rmux417 multiply 12345 13 -> 1.6049E+5 Inexact Rounded
- rmux418 multiply 12355 12 -> 1.4826E+5 Rounded
- rmux419 multiply 12355 13 -> 1.6062E+5 Inexact Rounded
-
- rounding: up
- rmux501 multiply 12345 1 -> 12345
- rmux502 multiply 12345 1.0001 -> 12347 Inexact Rounded
- rmux503 multiply 12345 1.001 -> 12358 Inexact Rounded
- rmux504 multiply 12345 1.01 -> 12469 Inexact Rounded
- rmux505 multiply 12345 1.1 -> 13580 Inexact Rounded
- rmux506 multiply 12345 4 -> 49380
- rmux507 multiply 12345 4.0001 -> 49382 Inexact Rounded
- rmux508 multiply 12345 4.9 -> 60491 Inexact Rounded
- rmux509 multiply 12345 4.99 -> 61602 Inexact Rounded
- rmux510 multiply 12345 4.999 -> 61713 Inexact Rounded
- rmux511 multiply 12345 4.9999 -> 61724 Inexact Rounded
- rmux512 multiply 12345 5 -> 61725
- rmux513 multiply 12345 5.0001 -> 61727 Inexact Rounded
- rmux514 multiply 12345 5.001 -> 61738 Inexact Rounded
- rmux515 multiply 12345 5.01 -> 61849 Inexact Rounded
- rmux516 multiply 12345 12 -> 1.4814E+5 Rounded
- rmux517 multiply 12345 13 -> 1.6049E+5 Inexact Rounded
- rmux518 multiply 12355 12 -> 1.4826E+5 Rounded
- rmux519 multiply 12355 13 -> 1.6062E+5 Inexact Rounded
- -- [rmux516 & rmux518] can surprise
-
- rounding: floor
- rmux601 multiply 12345 1 -> 12345
- rmux602 multiply 12345 1.0001 -> 12346 Inexact Rounded
- rmux603 multiply 12345 1.001 -> 12357 Inexact Rounded
- rmux604 multiply 12345 1.01 -> 12468 Inexact Rounded
- rmux605 multiply 12345 1.1 -> 13579 Inexact Rounded
- rmux606 multiply 12345 4 -> 49380
- rmux607 multiply 12345 4.0001 -> 49381 Inexact Rounded
- rmux608 multiply 12345 4.9 -> 60490 Inexact Rounded
- rmux609 multiply 12345 4.99 -> 61601 Inexact Rounded
- rmux610 multiply 12345 4.999 -> 61712 Inexact Rounded
- rmux611 multiply 12345 4.9999 -> 61723 Inexact Rounded
- rmux612 multiply 12345 5 -> 61725
- rmux613 multiply 12345 5.0001 -> 61726 Inexact Rounded
- rmux614 multiply 12345 5.001 -> 61737 Inexact Rounded
- rmux615 multiply 12345 5.01 -> 61848 Inexact Rounded
- rmux616 multiply 12345 12 -> 1.4814E+5 Rounded
- rmux617 multiply 12345 13 -> 1.6048E+5 Inexact Rounded
- rmux618 multiply 12355 12 -> 1.4826E+5 Rounded
- rmux619 multiply 12355 13 -> 1.6061E+5 Inexact Rounded
-
- rounding: ceiling
- rmux701 multiply 12345 1 -> 12345
- rmux702 multiply 12345 1.0001 -> 12347 Inexact Rounded
- rmux703 multiply 12345 1.001 -> 12358 Inexact Rounded
- rmux704 multiply 12345 1.01 -> 12469 Inexact Rounded
- rmux705 multiply 12345 1.1 -> 13580 Inexact Rounded
- rmux706 multiply 12345 4 -> 49380
- rmux707 multiply 12345 4.0001 -> 49382 Inexact Rounded
- rmux708 multiply 12345 4.9 -> 60491 Inexact Rounded
- rmux709 multiply 12345 4.99 -> 61602 Inexact Rounded
- rmux710 multiply 12345 4.999 -> 61713 Inexact Rounded
- rmux711 multiply 12345 4.9999 -> 61724 Inexact Rounded
- rmux712 multiply 12345 5 -> 61725
- rmux713 multiply 12345 5.0001 -> 61727 Inexact Rounded
- rmux714 multiply 12345 5.001 -> 61738 Inexact Rounded
- rmux715 multiply 12345 5.01 -> 61849 Inexact Rounded
- rmux716 multiply 12345 12 -> 1.4814E+5 Rounded
- rmux717 multiply 12345 13 -> 1.6049E+5 Inexact Rounded
- rmux718 multiply 12355 12 -> 1.4826E+5 Rounded
- rmux719 multiply 12355 13 -> 1.6062E+5 Inexact Rounded
-
- -- Power operator -----------------------------------------------------
-
- rounding: down
- rpox101 power 12345 -5 -> 3.4877E-21 Inexact Rounded
- rpox102 power 12345 -4 -> 4.3056E-17 Inexact Rounded
- rpox103 power 12345 -3 -> 5.3152E-13 Inexact Rounded
- rpox104 power 12345 -2 -> 6.5617E-9 Inexact Rounded
- rpox105 power 12345 -1 -> 0.000081004 Inexact Rounded
- rpox106 power 12345 0 -> 1
- rpox107 power 12345 1 -> 12345
- rpox108 power 12345 2 -> 1.5239E+8 Inexact Rounded
- rpox109 power 12345 3 -> 1.8813E+12 Inexact Rounded
- rpox110 power 12345 4 -> 2.3225E+16 Inexact Rounded
- rpox111 power 12345 5 -> 2.8671E+20 Inexact Rounded
- rpox112 power 415 2 -> 1.7222E+5 Inexact Rounded
- rpox113 power 75 3 -> 4.2187E+5 Inexact Rounded
-
- rounding: half_down
- rpox201 power 12345 -5 -> 3.4877E-21 Inexact Rounded
- rpox202 power 12345 -4 -> 4.3056E-17 Inexact Rounded
- rpox203 power 12345 -3 -> 5.3153E-13 Inexact Rounded
- rpox204 power 12345 -2 -> 6.5617E-9 Inexact Rounded
- rpox205 power 12345 -1 -> 0.000081004 Inexact Rounded
- rpox206 power 12345 0 -> 1
- rpox207 power 12345 1 -> 12345
- rpox208 power 12345 2 -> 1.5240E+8 Inexact Rounded
- rpox209 power 12345 3 -> 1.8814E+12 Inexact Rounded
- rpox210 power 12345 4 -> 2.3225E+16 Inexact Rounded
- rpox211 power 12345 5 -> 2.8672E+20 Inexact Rounded
- rpox212 power 415 2 -> 1.7222E+5 Inexact Rounded
- rpox213 power 75 3 -> 4.2187E+5 Inexact Rounded
-
- rounding: half_even
- rpox301 power 12345 -5 -> 3.4877E-21 Inexact Rounded
- rpox302 power 12345 -4 -> 4.3056E-17 Inexact Rounded
- rpox303 power 12345 -3 -> 5.3153E-13 Inexact Rounded
- rpox304 power 12345 -2 -> 6.5617E-9 Inexact Rounded
- rpox305 power 12345 -1 -> 0.000081004 Inexact Rounded
- rpox306 power 12345 0 -> 1
- rpox307 power 12345 1 -> 12345
- rpox308 power 12345 2 -> 1.5240E+8 Inexact Rounded
- rpox309 power 12345 3 -> 1.8814E+12 Inexact Rounded
- rpox310 power 12345 4 -> 2.3225E+16 Inexact Rounded
- rpox311 power 12345 5 -> 2.8672E+20 Inexact Rounded
- rpox312 power 415 2 -> 1.7222E+5 Inexact Rounded
- rpox313 power 75 3 -> 4.2188E+5 Inexact Rounded
-
- rounding: half_up
- rpox401 power 12345 -5 -> 3.4877E-21 Inexact Rounded
- rpox402 power 12345 -4 -> 4.3056E-17 Inexact Rounded
- rpox403 power 12345 -3 -> 5.3153E-13 Inexact Rounded
- rpox404 power 12345 -2 -> 6.5617E-9 Inexact Rounded
- rpox405 power 12345 -1 -> 0.000081004 Inexact Rounded
- rpox406 power 12345 0 -> 1
- rpox407 power 12345 1 -> 12345
- rpox408 power 12345 2 -> 1.5240E+8 Inexact Rounded
- rpox409 power 12345 3 -> 1.8814E+12 Inexact Rounded
- rpox410 power 12345 4 -> 2.3225E+16 Inexact Rounded
- rpox411 power 12345 5 -> 2.8672E+20 Inexact Rounded
- rpox412 power 415 2 -> 1.7223E+5 Inexact Rounded
- rpox413 power 75 3 -> 4.2188E+5 Inexact Rounded
-
- rounding: up
- rpox501 power 12345 -5 -> 3.4878E-21 Inexact Rounded
- rpox502 power 12345 -4 -> 4.3057E-17 Inexact Rounded
- rpox503 power 12345 -3 -> 5.3153E-13 Inexact Rounded
- rpox504 power 12345 -2 -> 6.5618E-9 Inexact Rounded
- rpox505 power 12345 -1 -> 0.000081005 Inexact Rounded
- rpox506 power 12345 0 -> 1
- rpox507 power 12345 1 -> 12345
- rpox508 power 12345 2 -> 1.5240E+8 Inexact Rounded
- rpox509 power 12345 3 -> 1.8814E+12 Inexact Rounded
- rpox510 power 12345 4 -> 2.3226E+16 Inexact Rounded
- rpox511 power 12345 5 -> 2.8672E+20 Inexact Rounded
- rpox512 power 415 2 -> 1.7223E+5 Inexact Rounded
- rpox513 power 75 3 -> 4.2188E+5 Inexact Rounded
-
- rounding: floor
- rpox601 power 12345 -5 -> 3.4877E-21 Inexact Rounded
- rpox602 power 12345 -4 -> 4.3056E-17 Inexact Rounded
- rpox603 power 12345 -3 -> 5.3152E-13 Inexact Rounded
- rpox604 power 12345 -2 -> 6.5617E-9 Inexact Rounded
- rpox605 power 12345 -1 -> 0.000081004 Inexact Rounded
- rpox606 power 12345 0 -> 1
- rpox607 power 12345 1 -> 12345
- rpox608 power 12345 2 -> 1.5239E+8 Inexact Rounded
- rpox609 power 12345 3 -> 1.8813E+12 Inexact Rounded
- rpox610 power 12345 4 -> 2.3225E+16 Inexact Rounded
- rpox611 power 12345 5 -> 2.8671E+20 Inexact Rounded
- rpox612 power 415 2 -> 1.7222E+5 Inexact Rounded
- rpox613 power 75 3 -> 4.2187E+5 Inexact Rounded
-
- rounding: ceiling
- rpox701 power 12345 -5 -> 3.4878E-21 Inexact Rounded
- rpox702 power 12345 -4 -> 4.3057E-17 Inexact Rounded
- rpox703 power 12345 -3 -> 5.3153E-13 Inexact Rounded
- rpox704 power 12345 -2 -> 6.5618E-9 Inexact Rounded
- rpox705 power 12345 -1 -> 0.000081005 Inexact Rounded
- rpox706 power 12345 0 -> 1
- rpox707 power 12345 1 -> 12345
- rpox708 power 12345 2 -> 1.5240E+8 Inexact Rounded
- rpox709 power 12345 3 -> 1.8814E+12 Inexact Rounded
- rpox710 power 12345 4 -> 2.3226E+16 Inexact Rounded
- rpox711 power 12345 5 -> 2.8672E+20 Inexact Rounded
- rpox712 power 415 2 -> 1.7223E+5 Inexact Rounded
- rpox713 power 75 3 -> 4.2188E+5 Inexact Rounded
-
- -- Underflow Subnormal and overflow values vary with rounding mode and sign
- maxexponent: 999999999
- minexponent: -999999999
- rounding: down
- rovx100 multiply 10 9E+999999999 -> 9.9999E+999999999 Overflow Inexact Rounded
- rovx101 multiply -10 9E+999999999 -> -9.9999E+999999999 Overflow Inexact Rounded
- rovx102 divide 1E-9 9E+999999999 -> 0E-1000000003 Underflow Subnormal Inexact Rounded
- rovx104 divide -1E-9 9E+999999999 -> -0E-1000000003 Underflow Subnormal Inexact Rounded
-
- rounding: up
- rovx110 multiply 10 9E+999999999 -> Infinity Overflow Inexact Rounded
- rovx111 multiply -10 9E+999999999 -> -Infinity Overflow Inexact Rounded
- rovx112 divide 1E-9 9E+999999999 -> 1E-1000000003 Underflow Subnormal Inexact Rounded
- rovx114 divide -1E-9 9E+999999999 -> -1E-1000000003 Underflow Subnormal Inexact Rounded
-
- rounding: ceiling
- rovx120 multiply 10 9E+999999999 -> Infinity Overflow Inexact Rounded
- rovx121 multiply -10 9E+999999999 -> -9.9999E+999999999 Overflow Inexact Rounded
- rovx122 divide 1E-9 9E+999999999 -> 1E-1000000003 Underflow Subnormal Inexact Rounded
- rovx124 divide -1E-9 9E+999999999 -> -0E-1000000003 Underflow Subnormal Inexact Rounded
-
- rounding: floor
- rovx130 multiply 10 9E+999999999 -> 9.9999E+999999999 Overflow Inexact Rounded
- rovx131 multiply -10 9E+999999999 -> -Infinity Overflow Inexact Rounded
- rovx132 divide 1E-9 9E+999999999 -> 0E-1000000003 Underflow Subnormal Inexact Rounded
- rovx134 divide -1E-9 9E+999999999 -> -1E-1000000003 Underflow Subnormal Inexact Rounded
-
- rounding: half_up
- rovx140 multiply 10 9E+999999999 -> Infinity Overflow Inexact Rounded
- rovx141 multiply -10 9E+999999999 -> -Infinity Overflow Inexact Rounded
- rovx142 divide 1E-9 9E+999999999 -> 0E-1000000003 Underflow Subnormal Inexact Rounded
- rovx144 divide -1E-9 9E+999999999 -> -0E-1000000003 Underflow Subnormal Inexact Rounded
-
- rounding: half_even
- rovx150 multiply 10 9E+999999999 -> Infinity Overflow Inexact Rounded
- rovx151 multiply -10 9E+999999999 -> -Infinity Overflow Inexact Rounded
- rovx152 divide 1E-9 9E+999999999 -> 0E-1000000003 Underflow Subnormal Inexact Rounded
- rovx154 divide -1E-9 9E+999999999 -> -0E-1000000003 Underflow Subnormal Inexact Rounded
-
- rounding: half_down
- rovx160 multiply 10 9E+999999999 -> Infinity Overflow Inexact Rounded
- rovx161 multiply -10 9E+999999999 -> -Infinity Overflow Inexact Rounded
- rovx162 divide 1E-9 9E+999999999 -> 0E-1000000003 Underflow Subnormal Inexact Rounded
- rovx164 divide -1E-9 9E+999999999 -> -0E-1000000003 Underflow Subnormal Inexact Rounded
-
- -- check maximum finite value over a range of precisions
- rounding: down
- precision: 1
- rovx200 multiply 10 9E+999999999 -> 9E+999999999 Overflow Inexact Rounded
- rovx201 multiply -10 9E+999999999 -> -9E+999999999 Overflow Inexact Rounded
- precision: 2
- rovx210 multiply 10 9E+999999999 -> 9.9E+999999999 Overflow Inexact Rounded
- rovx211 multiply -10 9E+999999999 -> -9.9E+999999999 Overflow Inexact Rounded
- precision: 3
- rovx220 multiply 10 9E+999999999 -> 9.99E+999999999 Overflow Inexact Rounded
- rovx221 multiply -10 9E+999999999 -> -9.99E+999999999 Overflow Inexact Rounded
- precision: 4
- rovx230 multiply 10 9E+999999999 -> 9.999E+999999999 Overflow Inexact Rounded
- rovx231 multiply -10 9E+999999999 -> -9.999E+999999999 Overflow Inexact Rounded
- precision: 5
- rovx240 multiply 10 9E+999999999 -> 9.9999E+999999999 Overflow Inexact Rounded
- rovx241 multiply -10 9E+999999999 -> -9.9999E+999999999 Overflow Inexact Rounded
- precision: 6
- rovx250 multiply 10 9E+999999999 -> 9.99999E+999999999 Overflow Inexact Rounded
- rovx251 multiply -10 9E+999999999 -> -9.99999E+999999999 Overflow Inexact Rounded
- precision: 7
- rovx260 multiply 10 9E+999999999 -> 9.999999E+999999999 Overflow Inexact Rounded
- rovx261 multiply -10 9E+999999999 -> -9.999999E+999999999 Overflow Inexact Rounded
- precision: 8
- rovx270 multiply 10 9E+999999999 -> 9.9999999E+999999999 Overflow Inexact Rounded
- rovx271 multiply -10 9E+999999999 -> -9.9999999E+999999999 Overflow Inexact Rounded
- precision: 9
- rovx280 multiply 10 9E+999999999 -> 9.99999999E+999999999 Overflow Inexact Rounded
- rovx281 multiply -10 9E+999999999 -> -9.99999999E+999999999 Overflow Inexact Rounded
- precision: 10
- rovx290 multiply 10 9E+999999999 -> 9.999999999E+999999999 Overflow Inexact Rounded
- rovx291 multiply -10 9E+999999999 -> -9.999999999E+999999999 Overflow Inexact Rounded
-
- -- reprise rounding mode effect (using multiplies so precision directive used)
- precision: 9
- maxexponent: 999999999
- rounding: half_up
- rmex400 multiply -9.999E+999999999 10 -> -Infinity Overflow Inexact Rounded
- rmex401 multiply 9.999E+999999999 10 -> Infinity Overflow Inexact Rounded
- rounding: half_down
- rmex402 multiply -9.999E+999999999 10 -> -Infinity Overflow Inexact Rounded
- rmex403 multiply 9.999E+999999999 10 -> Infinity Overflow Inexact Rounded
- rounding: half_even
- rmex404 multiply -9.999E+999999999 10 -> -Infinity Overflow Inexact Rounded
- rmex405 multiply 9.999E+999999999 10 -> Infinity Overflow Inexact Rounded
- rounding: floor
- rmex406 multiply -9.999E+999999999 10 -> -Infinity Overflow Inexact Rounded
- rmex407 multiply 9.999E+999999999 10 -> 9.99999999E+999999999 Overflow Inexact Rounded
- rounding: ceiling
- rmex408 multiply -9.999E+999999999 10 -> -9.99999999E+999999999 Overflow Inexact Rounded
- rmex409 multiply 9.999E+999999999 10 -> Infinity Overflow Inexact Rounded
- rounding: up
- rmex410 multiply -9.999E+999999999 10 -> -Infinity Overflow Inexact Rounded
- rmex411 multiply 9.999E+999999999 10 -> Infinity Overflow Inexact Rounded
- rounding: down
- rmex412 multiply -9.999E+999999999 10 -> -9.99999999E+999999999 Overflow Inexact Rounded
- rmex413 multiply 9.999E+999999999 10 -> 9.99999999E+999999999 Overflow Inexact Rounded
-
-